package net.xxcxcxcx.xc_enhancedmob.config.skill;

import com.google.gson.annotations.Expose;
import net.xxcxcxcx.xc_enhancedmob.skills.SkillRarity;

import java.util.List;

public class SkillConfig {
    @Expose
    private String message;
    @Expose
    private String Key;
    @Expose
    private String Name;
    @Expose
    private List<String> conflict;
    @Expose
    private List<Integer> LevelCost;
    @Expose
    private Integer Maxlevel;
    @Expose
    private Integer Preparationtime;
    @Expose
    private Integer Cooldown;
    @Expose
    private Integer InsideCooldown;
    @Expose
    private Integer MaxUseCount;
    @Expose
    private Integer InsideMaxUseCount;
    private SkillRarity rarity;

    public SkillConfig(String name, Integer maxlevel, Integer preparationtime, Integer cooldown, Integer insideCooldown, Integer maxUseCount,
                       Integer insideMaxUseCount, List<Integer> levelCost, List<String> conflict, String message, SkillRarity skillRarity) {
        setKey(name);
        setName(name);
        this.setMessage(message);
        setMaxlevel(maxlevel);
        setPreparationtime(preparationtime);
        setCooldown(cooldown);
        setInsideCooldown(insideCooldown);
        setMaxUseCount(maxUseCount);
        setInsideMaxUseCount(insideMaxUseCount);
        setLevelCost(levelCost);
        setConflict(conflict);
        setRarity(skillRarity);
    }

    public String getKey() {
        return Key;
    }

    public void setKey(String key) {
        Key = key;
    }

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public List<String> getConflict() {
        return conflict;
    }

    public void setConflict(List<String> conflict) {
        this.conflict = conflict;
    }

    public List<Integer> getLevelCost() {
        return LevelCost;
    }

    public void setLevelCost(List<Integer> levelCost) {
        LevelCost = levelCost;
    }

    public Integer getMaxlevel() {
        return Maxlevel;
    }

    public void setMaxlevel(Integer maxlevel) {
        Maxlevel = maxlevel;
    }

    public Integer getPreparationtime() {
        return Preparationtime;
    }

    public void setPreparationtime(Integer preparationtime) {
        Preparationtime = preparationtime;
    }

    public Integer getCooldown() {
        return Cooldown;
    }

    public void setCooldown(Integer cooldown) {
        Cooldown = cooldown;
    }

    public Integer getInsideCooldown() {
        return InsideCooldown;
    }

    public void setInsideCooldown(Integer insideCooldown) {
        InsideCooldown = insideCooldown;
    }

    public Integer getMaxUseCount() {
        return MaxUseCount;
    }

    public void setMaxUseCount(Integer maxUseCount) {
        MaxUseCount = maxUseCount;
    }

    public Integer getInsideMaxUseCount() {
        return InsideMaxUseCount;
    }

    public void setInsideMaxUseCount(Integer insideMaxUseCount) {
        InsideMaxUseCount = insideMaxUseCount;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public SkillRarity getRarity() {
        return rarity;
    }

    public void setRarity(SkillRarity rarity) {
        this.rarity = rarity;
    }
}
